﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ZoneLineNew.Common {

    /// <summary>
    /// 钢码验证类
    /// </summary>
    public class ValidationHelper {
        /// <summary>
        /// 根据模板验证输入字符串
        /// </summary>
        /// <param name="input">待验证的字符串</param>
        /// <param name="pattern">验证模板（*表示不验证该位置，其他字符需严格匹配）</param>
        /// <returns>验证通过返回true，否则返回false</returns>
        public static bool ValidateWithPattern(string input, string pattern) {
            // 处理null情况：两者都为null则通过，仅其一为null则不通过
            if (input == null && pattern == null)
                return true;
            if (input == null || pattern == null)
                return false;

            // 验证长度是否一致（长度由模板定义）
            if (input.Length != pattern.Length)
                return false;

            // 逐个字符验证
            for (int i = 0; i < pattern.Length; i++) {
                char patternChar = pattern[i];
                // 模板中不是*的位置，必须与输入字符串对应位置字符一致
                if (patternChar != '*' && input[i] != patternChar) {
                    return false;
                }
            }

            // 所有验证通过
            return true;
        }
    }

}
